// @/utils/request.js
// #ifdef MP-WEIXIN
const baseURL = "https://api.yoojet.com"
// #endif 
// #ifdef H5
const baseURL = "https://api.yoojet.com"
// #endif

const timeout = 5000

// 封装api请求
const request = function(option){ 
	// 获取用户传入的url
	var url = baseURL + option.url; 
	 
	// 添加提请求头
	var  header = option.header||{}
	if(!!option.needToken){
		// 添加token  根据项目实际需求  修改即可
		// header.Authorization =  'Bearer ' +  uni.getStorageSync('token');  
		header.authorization = uni.getStorageSync('token');  
	}
	header.source=1;
	header.channel="h5";
	
	// 加载提示
	var loading = option.loading;
	// 如果有loading就显示loading
	if(loading){
		uni.showLoading(loading)
	}
  
  // 返回一个promise
	return new Promise((resolve,reject)=>{  
		// 发起一个request请求
		uni.request({
			url, //请求url
			method:option.method||"GET", //请求方法
			header, //请求头
			timeout,
			data:option.data||option.params, //请求数据
			success(res){
				console.log('获取返回的结果=====================', res)
				// 成功返回结果
				if(res.statusCode===200){
					resolve(res.data)
					// 如果是101 没有权限
					if(res.data.ErrorCode==101){
						uni.showToast({
							title: res.data.msg,
							icon:'none'
						})
						uni.redirectTo({
							url: '/pages/Login/Login',
						})
					}
					if(res.data.ErrorCode!=200 && res.data.ErrorCode!=0){
						uni.showToast({
							icon:'none',
							title:res.data.msg||'请求错误'
						})
					}
					if(res.data.ErrorCode==0){
						// 说明请求成功
						resolve(res.data)
					}
				} 
			},
			fail(err){
				// 失败返回失败结果
				uni.showToast({
					title: '请求失败',
					icon:'error'
				})
				console.error(err);
				reject(err)
			},
			complete(){
				// 完成 关闭loading
				if(loading){
					uni.hideLoading()
				}
			}
		})
	})
}

// 定义get简洁方法
request.get=function(url,config){
	return  request({
		url,
		method:"GET",
		...config
	})
}

// 定义post简洁方法
request.post=function(url,data,config){
	return  request({
		url,
		method:"POST",		
		...config,
		data
	})
}
// 导出请求
export default request;
